package modelo.traits

import org.joda.time.LocalTime
import scala.collection.mutable.Buffer
import modelo.Recurso
import modelo.Aula
import org.joda.time.DateTime
import org.joda.time.Interval

trait Evento extends ConFecha {
  
  var desde : LocalTime = _
  var hasta : LocalTime = _
  var recursosRequeridos = Set[Recurso]()
  var m2Pizarron : Int = _
  var aula : Aula = _
  
  def string : String
  
  def asistencia : Int
  
  def franjaHoraria = new Interval(fecha.toDateTime(desde),fecha.toDateTime(hasta))
  
  def ocurreMientras(evento : Evento) = this.franjaHoraria.overlaps(evento.franjaHoraria)
  
  def meSirve(unAula : Aula) = 
    unAula.cuentaCon(recursosRequeridos) && 
    unAula.estaDisponiblePara(this) &&
    unAula.capacidad >= asistencia &&
    unAula.m2Pizarron >= m2Pizarron
}
